<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>

<body>

  <script>
    const obj = {
      name: 'zs',
      age: 20,
      gender: '女',
      info: {
        city: '北京',
        area: '顺义',
        hobby: ['保龄球', '马术', '高尔夫']
      }
    }

    // 什么叫浅拷贝呢？
    // 误区：浅拷贝不等于赋值！！！
    // 浅拷贝的概念：指的是把对象“最外层”的属性，拷贝出来，交给一个新对象。
    // 实现浅拷贝的方式有3种：
    // 1. 普通for循环
    // 2. 展开运算符
    // 3. Object.assign()

    // 【1. 普通for循环】
    // const o = {}
    // for (const k in obj) {
    //   o[k] = obj[k]
    // }

    // 【2. 展开运算符】
    // const o = { ...obj }

    // 【Object.assign()】
    // assign 单词，是分配的意思
    const o = Object.assign({}, obj)

    console.log(o, obj)
  </script>
</body>

</html>